package com.ruoyi.controller.config;

import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

import java.time.Duration;

/**
 * 配置RestTemplate的类
 * 这个类通过Spring的@Bean注解来定义一个RestTemplate的bean，
 * 并使用RestTemplateBuilder来配置其连接和读取超时时间
 */
@Configuration
public class RestTemplateConfig {
    /**
     * 创建并配置RestTemplate实例
     * 使用RestTemplateBuilder设置连接超时时间为5秒，读取超时时间为45秒
     * 这些超时设置是为了处理网络延迟或其他可能导致的延迟问题
     *
     * @return 配置好的RestTemplate实例
     */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplateBuilder()
                .setConnectTimeout(Duration.ofSeconds(600))
                .setReadTimeout(Duration.ofSeconds(645))
                .build();
    }
}
